iOS

cocos2d-x 学习笔记(2)

调度器(scheduler)

重载系统的调度器

Cocos2d-x中Node默认是没有启用update事件的,因此你需要重载update方法来执行自己的逻辑代码。
通过执行schedulerUpdate()调度器每帧执行 update方法,如果需要停止这个调度器,可以使用

1
2
以下代码用来测试该调度器:
`

HelloWorldScene.h
void update(float dt) override;

1
2
3
4
5
6
7
8
9
10
11
12
````
HelloWorldScene.cpp
bool HelloWorld::init()
{
    ...
    scheduleUpdate();
    return true;
}
void HelloWorld::update(float dt)
{
    log("update");
}

自定义调度器

1
2
HelloWorldScene.h
void updateCustom(float dt);
1
2
3
4
5
6
7
8
9
10
11
HelloWorldScene.cpp
bool HelloWorld::init()
{
    schedule(schedule_selector(HelloWorld::updateCustom), 1.0f, kRepeatForever, 0);
scheduleOnce(schedule_selector(HelloWorld::myUpdate), 1);//单次的调度器
    return true;
}
void HelloWorld::updateCustom(float dt)
{
    log("Custom");
}

我们来看下scheduler(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)函数里面的参数:

  1. 第一个参数selector即为你要添加的事件函数
  2. 第二个参数interval为事件触发时间间隔
  3. 第三个参数repeat为触发一次事件后还会触发的次数,默认值为kRepeatForever,表示无限触发次数
  4. 第四个参数delay表示第一次触发之前的延时